package main

import "fmt"

/*
	石子合并
题目描述
小Q和牛博士在玩一个石子合并的游戏，初始一共有n堆石子，每堆石子有w[i]个石子。
小Q和牛博士他们需要对石子堆进行合并，每次他们可以任意选择两堆石子进行合并。
一堆有x个石子的石子堆和一堆有y个石子的石子堆合并将得到一堆x+y个石子的石子堆，
这次合并得分为x*y，当只剩下一堆石子的时候游戏结束。
小Q和牛博士希望采取优秀的策略获得最大得分，希望你能来帮他们算算最大得分多少。
输入描述:
输入包括两行，第一行一个正整数n(2≤n≤100)。
第二行包括n个正整数w[i](1≤w[i]≤100)，即每堆石子的个数。
输出描述:
输出一个正整数，即小Q和牛博士最大得分是多少。
示例1
输入
3
1 2 3
输出
11
 */

func main() {
	var n int
	fmt.Scan(&n)
	arr := make([]int, n)
	for i := range arr {
		fmt.Scan(&arr[i])
	}
	res, temp := 0, 0
	for index := range arr {
		res += temp * arr[index]
		temp += arr[index]
	}
	fmt.Println(res)
}
